﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntitiesLayer.Entities;
using BusinnesLayer.LogicBusiness;

namespace ClinicaSanPablo
{
    public partial class BusReclamante : System.Web.UI.Page
    {
        private System.Web.Script.Serialization.JavaScriptSerializer jsonSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        private Reclamantebl pBl = new Reclamantebl();
        protected void Page_Load(object sender, EventArgs e)
        {
            int page = Convert.ToInt32(Request.QueryString["page"]);
            int limit = Convert.ToInt32(Request.QueryString["rows"]); 
            string sidx = Request.QueryString["sidx"].ToString();
            string sord = Request.QueryString["sord"].ToString();

            string apellidoReclamante = Request.QueryString["apellidoReclamante"] ?? "";
            string nombreReclamante = Request.QueryString["nombreReclamante"] ?? "";

            string datos = GetReclamantes(sidx, sord, page, limit, apellidoReclamante, nombreReclamante);
            Response.ContentType = "application/json";
            Response.Write(datos);
            Response.End();
        }

        public string GetReclamantes(string sidx, string sord, int page, int rows, string apellidoReclamante, string nombreReclamante)
        {

            if (apellidoReclamante != "" || nombreReclamante != "")
            {
                List<Reclamante> lista = pBl.BuscarReclamantes(apellidoReclamante, nombreReclamante);
                List<object> lstFilasAfil = new List<object>();

                if (lista.Count > 0)
                {
                    foreach (var reclamante in lista)
                    {
                        var filaAfil = new
                        {
                            cell = new string[]
                        {
                            reclamante.IREC_NRO_DOCUMENTO,
                            reclamante.VREC_APELLIDOS_RECL,
                            reclamante.VREC_NOMBRES_RECL,
                            reclamante.VREC_TELEF_FIJO,
                            reclamante.VREC_CELULAR,
                            reclamante.VREC_EMAIL,
                        }
                        };
                        lstFilasAfil.Add(filaAfil);
                    }

                    int totalPag = (int)Math.Ceiling((decimal)rows / (decimal)lista.Count);
                    var data = new
                    {
                        total = totalPag,
                        // Total de páginas
                        page = page,
                        // Página actual
                        records = lista.Count,
                        // Total de registros (obtenido del modelo)
                        rows = lstFilasAfil
                    };
                    return jsonSerializer.Serialize(data);
                }
                else
                {
                    var data = new
                    {
                        total = 0,
                        // Total de páginas
                        page = 1,
                        // Página actual
                        records = 0,
                        // Total de registros (obtenido del modelo)
                        rows = ""
                    };
                    return jsonSerializer.Serialize(data);
                }

            }
            else {
                var data = new
                {
                    total = 0,
                    page = 1,
                    records = 0,                    
                    rows = ""
                };
                return jsonSerializer.Serialize(data);
            }           
        } 
    }
}